using System;
using PropertyExpression.Common;

namespace PropertyExpression.ReactiveRelation
{
    public interface ICalcInitiator<out TEntity>
    {
        Func<TProperty, ICalcInitiator<TEntity>> GetValue<TProperty>(
            IPropertyExpressionProxy<TEntity, TProperty> propertyExpressionProxy);

        TEntity Entity { get; }

        ICalcExecutor CalcExecutor { get; }
    }
}